﻿Imports System.Windows
Imports System.Windows.Media

Namespace Extension

    Public Interface IPlugin

#Region "Events"

        Event RequestShowBalloonTip As EventHandler(Of ShowBalloonTipEventArgs)

        Event RequestShowAlertWindow As EventHandler(Of ShowAlertWindowEventArgs)

        Event RequestOpenUri As EventHandler(Of OpenUriEventArgs)

        Event RequestSaveSettings As EventHandler(Of SaveSettingsEventArgs)

        Event SendSystemMessage As EventHandler(Of Model.SystemMessageEventArgs)
#End Region

#Region "Methods"

        ''' <summary>
        ''' 必要に応じて初期化処理を実行します。その他のメソッドが呼び出される前に１度だけ呼び出します。
        ''' </summary>
        ''' <param name="settings">プラグインの設定</param>
        ''' <remarks></remarks>
        Sub Initialize(ByVal settings As IPluginSettings)

        ''' <summary>
        ''' アラート処理を実行します
        ''' </summary>
        ''' <param name="program"></param>
        ''' <remarks></remarks>
        Sub ExecuteAlert(ByVal program As Model.LiveProgram)

        ''' <summary>
        ''' 放送に対する処理を実行します
        ''' </summary>
        ''' <param name="program"></param>
        ''' <remarks></remarks>
        Sub ExecuteAction(ByVal program As Model.LiveProgram)

        ''' <summary>
        ''' 生放送開始時に処理を実行します
        ''' </summary>
        ''' <param name="liveProgram"></param>
        ''' <remarks></remarks>
        Sub ExecuteWhenLiveProgramStarted(ByVal liveProgram As Model.LiveProgram)

        ''' <summary>
        ''' 設定ウィンドウを表示します
        ''' </summary>
        ''' <param name="dialogOwner"></param>
        ''' <remarks></remarks>
        Sub EditOptions(ByVal dialogOwner As Window)

#End Region

    End Interface



End Namespace
